package com.ibeeking.gmc.global.service.common.dos;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * @ClassName OpenAuthDO
 * @Description
 * @Author ibeeking
 * @Date 2021-01-25 15:03
 **/
@Data
@TableName("gmc_open_auth")
public class OpenAuthDO implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 自增ID
     */
    @TableId(type = IdType.ASSIGN_ID)
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long id;

    /**
     * 租户id
     */
    @TableField(value = "tenant_id")
    private Long tenantId;

    /**
     * 第三方开放平台id
     */
    @TableField(value = "open_id")
    private Long openId;
    /**
     * 第三方开放平台appid
     */
    @TableField(value = "open_app_id")
    private String openAppId;
    /**
     * 微信第三方平台的appid
     */
    @TableField(value = "component_app_id")
    private String componentAppId;
    /**
     * 微信第三方平台的componentAppSecret
     */
    @TableField(value = "component_app_secret")
    private String componentAppSecret;
    /**
     * 开放平台类型：1=微信开放平台；2=企业微信开放平台；3=支付宝开放平台；4=钉钉开放平台
     */
    @TableField(value = "config_type")
    private Integer configType;
    /**
     * 开放平台子类型
     */
    @TableField(value = "config_sub_type")
    private Integer configSubType;
    /**
     * 1-小程序，2-公众号
     */
    @TableField(value = "app_type")
    private Integer appType;
    /**
     * 子类型
     */
    @TableField(value = "app_sub_type")
    private Integer appSubType;
    /**
     * 微信小程序/公众号appid
     */
    @TableField(value = "app_id")
    private String appId;

    /**
     * 微信小程序/公众号appSecret
     */
    @TableField(value = "app_secret")
    private String appSecret;

    /**
     * 公众号Token
     */
    @TableField(value = "app_token")
    private String appToken;

    /**
     * 公众号EnAesKey
     */
    @TableField(value = "app_aes_key")
    private String appAesKey;
    /**
     * 应对不用应用配置的差异Json
     */
    @TableField(value = "extend_json")
    private String extendJson;

    /**
     * 是否启用，1-授权，0-取消授权
     */
    @TableField(value = "publish_status")
    private Integer publishStatus;
    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;
    /**
     * 创建人
     */
    @TableField("create_by")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long createBy;
    /**
     * 修改时间
     */
    @TableField("modify_time")
    private LocalDateTime modifyTime;
    /**
     * 修改人
     */
    @TableField("modify_by")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long modifyBy;
}
